function Asi_WebRoot_AsiCommon_ContentManagement_DownloadDocument() { var oldJavascriptTextPrefix = 'javascript://['; //No longer supported due to XSS vulnerabilities, href placeholder for button click logic created in ContentLinkDialog.js var oldJavascriptTextSuffix = ']'; //also used for placeholder href var javascriptPathPrefix = '/common/'; // New method of inserting download links var downloadButton; var hiddenField; var my; this.OnLoad = function (downloadButtonId, hiddenDownloadField) { my = this; downloadButton = jQuery(downloadButtonId); hiddenField = jQuery(hiddenDownloadField); var container = downloadButton.closest(".ContentItemContainer"); //look for links with href placeholders created by ContentLinkDialog.js for download file links container.find("a[href^='javascript://'], a[download='']").each(function () { jQuery(this).click(function (e) { e.preventDefault(); my.OnClick(jQuery(this).prop("href")); }); }); }; this.OnClick = function (href) { //parse out path var path = my.ExtractPathFromHref(href); hiddenField.val(path); downloadButton.click();//sends to server for requested file }; this.ExtractPathFromHref = function (href) { if (href.startsWith("javascript://")) { var startIndex = oldJavascriptTextPrefix.length; var endIndex = href.length - oldJavascriptTextSuffix.length; } else { var startIndex = href.indexOf(javascriptPathPrefix) + javascriptPathPrefix.length; /*may need to check if javascriptPathPrefix is found */ var endIndex = href.length; } var pathWithoutJavascript = href.slice(startIndex, endIndex); return pathWithoutJavascript; }; }